// ComputerPlayer.h
//
// Created By: Jeremy Butler
// Created On: 24-Mar-2011
//
// A representation of the computer player.

#ifndef COMP_PLAYER_H
#define COMP_PLAYER_H

#include "ChessPlayer.h"
#include "ChessController.h"

using namespace std;

class ComputerPlayer : public ChessPlayer {
private:
  int state; // 0 = Select Piece, 1 = Move Piece
  ChessController * controller;
  
public:
  //! @brief No-Arg Constructor
  ComputerPlayer();

  //! @brief Constructor
  ComputerPlayer(Color _color, ChessController * _controller);

  //! @brief Copy Constructor
  //! @param other The ComputerPlayer to be copied
  ComputerPlayer(const ComputerPlayer & other);

  //! @brief Destructor
  virtual ~ComputerPlayer();

  virtual void on_TimerEvent();

  void Reset();

private:
  void SelectPiece();
  void MovePiece();
};

#endif /* COMP_PLAYER_H */